﻿using System.ComponentModel;

namespace QMERP.Domain.Dtos
{
    public class ContractResponse
    {
        public long Id { get; set; }
        /// <summary>
        /// 合约编号
        /// </summary>
        [Description("合约编号")]
        public string Number { get; set; } = "";
        /// <summary>
        /// 合约名称
        /// </summary>
        [Description("合约名称")]
        public string Name { get; set; } = "";
        /// <summary>
        /// 合约类型
        /// </summary>
        [Description("合约类型")]
        public string Type { get; set; } = "";
        /// <summary>
        /// 总金额
        /// </summary>
        [Description("总金额")]
        public decimal Money { get; set; }
        /// <summary>
        /// 预付金额
        /// </summary>
        [Description("预付金额")]
        public decimal PrepaidMoney { get; set; }
        /// <summary>
        /// 收款期数
        /// </summary>
        [Description("收款期数")]
        public int Period { get; set; }
        /// <summary>
        /// 合约状态
        /// </summary>
        [Description("合约状态")]
        public string Status { get; set; } = "";
        /// <summary>
        /// 合约开始时间
        /// </summary>
        [Description("合约开始时间")]
        public DateTime BeginOn { get; set; } = DateTime.Now;
        /// <summary>
        /// 合约结束时间
        /// </summary>
        [Description("合约结束时间")]
        public DateTime EndOn { get; set; } = DateTime.MaxValue;
        [Description("备注")]
        public string? Remark { get; set; }
        public long CreatedBy { get; set; }
        [Description("创建人")]
        public string CreatedByName { get; set; } = "";
        [Description("创建时间")]
        public DateTime CreatedOn { get; set; } = DateTime.Now;
        public long? UpdatedBy { get; set; }
        [Description("更新人")]
        public string? UpdatedByName { get; set; }
        [Description("更新时间")]
        public DateTime? UpdatedOn { get; set; }
        public long? CheckedBy { get; set; }
        [Description("审核人")]
        public string? CheckedByName { get; set; }
        [Description("审核时间")]
        public DateTime? CheckedOn { get; set; }
        public List<long>? CustomerIds { get; set; }
        public List<string>? CustomerNames { get; set; }
        public List<Contract_LensResponse> Contract_Lenses { get; set; } = new();
        public List<Contract_Lens_SalesProcessConstraintResponse> Contract_Lens_SalesProcessConstraints { get; set; } = new();
    }
}
